#ifndef WATCHERFILE_H
#define WATCHERFILE_H

#include <QObject>
#include <QFileSystemWatcher>
#include <QMap>

///
/// \brief The WatcherFile class
///监控目录下的文件
///当文件超过3天被移动备分目录 目录下产生大量文件，运行时间过长效率低
/// 每次只监控最后的10个文件 当有新的文件加入，最早加入的被移除
///
class WatcherFile : public QObject
{
    Q_OBJECT
public:
    explicit WatcherFile(QObject *parent = nullptr);

     QFileSystemWatcher *watch;

     QString watchpath;//监控目录
     QString batpath;//备份目录

     void addWatchDir(const QString &dir);
     void addWatchFile(const QString &file);

     void initWathcfile(const QString& path);
signals:
       void fileChange(const QString &path);
private:
     QMap<QString, QStringList> m_watchDirMap; // 当前每个监控的内容目录列表

     QStringList wathchfiles;

public slots:
    void directoryUpdated(const QString &path);  // 目录更新时调用，path是监控的路径
    void fileUpdated(const QString &path);   // 文件被修改时调用，path是监控的路径
};

#endif // WATCHERFILE_H
